home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
SPBCO.z
/
SPBCO
Wrap
Text File
|
1996-03-14
|
4KB
|
133 lines
SSSSPPPPBBBBCCCCOOOO((((3333FFFF)))) SSSSPPPPBBBBCCCCOOOO((((3333FFFF))))
NNNNAAAAMMMMEEEE
SPBCO - SPBCO factors a real symmetric positive definite matrix stored
in band form and estimates the condition of the matrix.
If RCOND is not needed, SPBFA is slightly faster. To solve A*X = B ,
follow SPBCO by SPBSL. To compute INVERSE(A)*C , follow SPBCO by SPBSL.
To compute DETERMINANT(A) , follow SPBCO by SPBDI.
SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
SUBROUTINE SPBCO(ABD,LDA,N,M,RCOND,Z,INFO)
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
On Entry
AAAABBBBDDDD REAL(LDA, N)
the matrix to be factored. The columns of the upper
triangle are stored in the columns of ABD and the
diagonals of the upper triangle are stored in the
rows of ABD . See the comments below for details.
LLLLDDDDAAAA INTEGER
the leading dimension of the array ABD .
LDA must be .GE. M + 1 .
NNNN INTEGER
the order of the matrix A .
MMMM INTEGER
the number of diagonals above the main diagonal.
0 .LE. M .LT. N . On Return
AAAABBBBDDDD an upper triangular matrix R , stored in band
form, so that A = TRANS(R)*R .
If INFO .NE. 0 , the factorization is not complete.
RRRRCCCCOOOONNNNDDDD REAL
an estimate of the reciprocal condition of A .
For the system A*X = B , relative perturbations
in A and B of size EPSILON may cause
relative perturbations in X of size EPSILON/RCOND .
If RCOND is so small that the logical expression
1.0 + RCOND .EQ. 1.0
is true, then A may be singular to working
precision. In particular, RCOND is zero if
exact singularity is detected or the estimate
underflows. If INFO .NE. 0 , RCOND is unchanged.
ZZZZ REAL(N)
a work vector whose contents are usually unimportant.
If A is singular to working precision, then Z is
an approximate null vector in the sense that
PPPPaaaaggggeeee 1111
SSSSPPPPBBBBCCCCOOOO((((3333FFFF)))) SSSSPPPPBBBBCCCCOOOO((((3333FFFF))))
NORM(A*Z) = RCOND*NORM(A)*NORM(Z) .
If INFO .NE. 0 , Z is unchanged.
IIIINNNNFFFFOOOO INTEGER
= 0 for normal return.
= K signals an error condition. The leading minor
of order K is not positive definite. Band Storage
If A is a symmetric positive definite band matrix,
the following program segment will set up the input.
M = (band width above diagonal)
DO 20 J = 1, N
I1 = MAX0(1, J-M)
DO 10 I = I1, J
K = I-J+M+1
ABD(K,J) = A(I,J)
10 CONTINUE
20 CONTINUE
This uses M + 1 rows of A , except for the M by M
upper left triangle, which is ignored. Example: If the original
matrix is
11 12 13 0 0 0
12 22 23 24 0 0
13 23 33 34 35 0
0 24 34 44 45 46
0 0 35 45 55 56
0 0 0 46 56 66 then N = 6 , M = 2 and ABD should contain
* * 13 24 35 46
* 12 23 34 45 56
11 22 33 44 55 66 LINPACK. This version dated 08/14/78 . Cleve
Moler, University of New Mexico, Argonne National Lab. Subroutines and
Functions LINPACK SPBFA BLAS SAXPY,SDOT,SSCAL,SASUM Fortran
ABS,AMAX1,MAX0,MIN0,REAL,SIGN
PPPPaaaaggggeeee 2222